package com.sale.goods.service;

import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.goods.domain.dto.GoodsNuclearDto;
import com.sale.goods.domain.dto.single.GoodsNuclearSingle;
import com.sale.goods.domain.vo.GoodsNuclearVo;

/**
 * @Description 核销单
 * @Date 23-08-14
 * @Author hl
 **/
public interface IGoodsNuclearService {

    /**
     * 分页查询核销单
     *
     * @param goodsNuclearVo,pageQuery
     * @return TableDataInfo<GoodsNuclearDto>
     */
    TableDataInfo<GoodsNuclearDto> selectNuclearList(GoodsNuclearVo goodsNuclearVo, PageQuery pageQuery);

    /**
     * 新增核销单
     *
     * @param goodsNuclearVo
     * @return int
     */
    int insertNuclear(GoodsNuclearVo goodsNuclearVo) throws Exception;

    /**
     * 查看核销单
     *
     * @param nuclearId
     * @return GoodsNuclearSingle
     */
    GoodsNuclearSingle selectNuclearById(long nuclearId);

    /**
     * 修改核销单
     *
     * @param goodsNuclearVo
     * @return int
     */
    int updateNuclearEdit(GoodsNuclearVo goodsNuclearVo);

    /**
     * 删除核销单
     *
     * @param nuclearId
     * @return int
     */
    int deleteNuclearById(Long nuclearId);

    /**
     * 提交审核
     *
     * @param nuclearId
     * @return int
     */
    int submitReview(Long nuclearId);

    /**
     * 撤销审核
     *
     * @param nuclearId
     * @return int
     */
    int deleteReview(Long nuclearId);

    /**
     * 审核单据
     *
     * @param goodsNuclearVo
     * @return int
     */
    int goodSExamineReview(GoodsNuclearVo goodsNuclearVo) throws Exception;
}
